home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs05.d81 / evsbasic.arc / EVSKEYWORDS.Q-S < prev    next >
Text File  |  2009-10-10  |  11KB  |  311 lines

  1. ---------------------------------------
  2.  
  3. RECORD# <lf#>, <record#> [,<char#>]
  4.  
  5. The RECORD# command is used with an OPENed RELative disk file to position
  6. the record pointer to a particular record.  The record pointer must be set
  7. to point to a particular record before any reading from or writing to that
  8. record can be accomplished (use GET#, INPUT#, or INPUT$() to read; PRINT#
  9. to write).
  10.  
  11. <Lf#> is the logical file number used when the file was OPENed.
  12.  
  13. <Record#> may range from 1 to 65535, although if zero is used Commodore DOS
  14. will automatically promote it to a 1.  If RECORD# sets the record pointer
  15. to a record beyond the current last record in the file DOS error "50,RECORD
  16. NOT PRESENT,XX,XX" occurs.  This is a fatal error if trying to read that
  17. record, but writing to a record beyond the current last record in a
  18. relative file causes that record and all intervening records to be created.
  19. This enables a relative file to be expanded whenever necessary (record
  20. creation is a time-consuming process for the disk drive, however, and it is
  21. often preferable to create large numbers of records a few times rather than
  22. small numbers of records many times).
  23.  
  24. <Char#> is used to set the character pointer to a particular character
  25. within the record.  Reading and writing takes place at the current position
  26. of the character pointer, with the pointer advancing one character each
  27. time a character is read or written.  <Char#> may range from 1 to 254,
  28. although if zero is used Commodore DOS will automatically promote it to a
  29. 1.  If <char#> is not specified it is assumed to be 1.  If <char#> is
  30. larger than the record size DOS error "51,OVERFLOW IN RECORD,XX,XX" will
  31. occur.
  32.  
  33. Examples:
  34.  
  35. 10 RECORD# 3, 63
  36. 20 RECORD# 13, 650, 20
  37. 30 RECORD# 5, A:  A$=INPUT$(100, #5)
  38.  
  39. ---------------------------------------
  40.  
  41. RESTORE [<line#>]
  42.  
  43. The V2 Basic RESTORE statement has been modified to accept an optional line
  44. number.  If <line#> is present RESTORE sets the internal data pointer to
  45. that line number.  RESTORE with no line number sets the pointer to the
  46. first line of the program.  READing continues normally starting with the
  47. first DATA statement on or after the line the data pointer points to.
  48.  
  49. Examples:
  50.  
  51. 10 RESTORE
  52. 20 RESTORE 1000
  53.  
  54. ---------------------------------------
  55.  
  56. RUN [<line#>]
  57.  
  58. The V2 Basic RUN command has been modified to set default screen scaling
  59. and sizing for bitmap graphics operations before beginning program
  60. execution.  There is no other change in its behavior.
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. Examples:
  69.  
  70. RUN
  71. RUN 100
  72.  
  73. ---------------------------------------
  74.  
  75. SAVE <filename$> [,<dvc#>] [,<addr>]
  76.  
  77. The V2 Basic SAVE command has been modified to save <filename$> on the
  78. current default device if <dvc#> is not specified.  There is no other
  79. change in its behavior.
  80.  
  81. Examples:
  82.  
  83. 10 SAVE "MYPROGRAM"
  84. 20 SAVE "THISPROGRAM",8
  85. 30 SAVE "THATPROGRAM",1,2
  86.  
  87. ---------------------------------------
  88.  
  89. SCALE [<xrange/orient>] [,<yrange/orient>] [,<xorigin>] [,<yorigin>]
  90.  
  91. SCALE sets the logical coordinate system of the bitmap screen.  ERASE,
  92. LINE, LOCATE, POINT, and SPRLOC are all affected by logical scaling.
  93. CUR(), DRAW, and WRITE are not affected by logical scaling, except that
  94. they perform their functions starting at the current logical cursor
  95. position.
  96.  
  97. The physical coordinate system of the bitmap screen consists of 64000
  98. pixels arranged in 320 columns by 200 rows.  The origin (coordinates 0,0)
  99. is at the upper left corner of the screen.  X values increase from left to
  100. right, and Y values increase from top to bottom.  The bottom right corner
  101. of the screen has coordinates 319,199.
  102.  
  103. EVS Basic overlays the physical coordinate system with a logical coordinate
  104. system.  Statements which accept logical coordinates automatically
  105. transform them into physical coordinates before use according to the
  106. equations:
  107.  
  108. physical xpos = 320/<xrange/orient> * (<logical xpos> + <xorigin>)
  109. physical ypos = 200/<yrange/orient> * (<logical ypos> + (yorigin>)
  110.  
  111. Logical coordinates which are outside the physical coordinate system after
  112. transformation are not legal, except in the case of the SPRLOC statement.
  113. The default logical screen coordinate system is equivalent to the physical
  114. coordinate system (which is the same as SCALE 320,200,0,0).  RUNning a
  115. program resets the default logical coordinate system.
  116.  
  117. SCALE without parameters resets the default logical coordinate system.  If
  118. parameters are present it is not possible to "skip over" unused SCALE
  119. parameters.  All must be present up to the last one actually used.
  120. Parameters not specified retain their current values.  The range of all
  121. four parameters is -32768 to +32767, except that <xrange/orient> and
  122. <yrange/orient> may not be zero.  The logical origin may be located
  123. anywhere, including outside the physical coordinate system.
  124.  
  125. Examples:
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133. 10 SCALE
  134. 20 SCALE 320,-200,0,-199
  135. 30 SCALE 320,-240,160,-120
  136. 40 SCALE 280,192
  137. 50 SCALE 640,400
  138. 60 SCALE 2*3.14,-2,3.14,-1
  139.  
  140. ---------------------------------------
  141.  
  142. SPRCOL <sprite# [,<sum>]>, <color>
  143.  
  144. The SPRCOL statement sets the color of one or more sprites.  For multicolor
  145. sprites, SPRCOL sets the color independent of the two shared multicolors.
  146.  
  147. The VIC-II chip can display eight sprites, which EVS Basic numbers 1 to 8.
  148. Any single sprite can be affected by using its number for <sprite#>.  In
  149. this case <sum> is not used and should not be present.  Multiple sprites
  150. can be affected at the same time by using 0 for <sprite#> together with
  151. <sum>.  <Sum> is calculated by starting with zero and adding 1 for sprite
  152. 1, 2 for sprite 2, 4 for sprite 3, 8 for sprite 4, 16 for sprite 5, 32 for
  153. sprite 6, 64 for sprite 7, and 128 for sprite 8.  <Sum> has a maximum value
  154. of 255, which would affect all 8 sprites at once (1+2+4+8+16+32+64+128).
  155.  
  156. <Color> may range from 0 to 15.
  157.  
  158. Examples:
  159.  
  160. 10 SPRCOL 1, 7
  161. 20 SPRCOL I, C(I)
  162. 30 SPRCOL 0, 255, 1
  163.  
  164. ---------------------------------------
  165.  
  166. SPRITE <sprite# [,<sum>]>, [<enable> [,<priority> [,<xsize> [,<ysize>
  167. [,<multi>]]]]]
  168.  
  169. SPRITE controls all the "on-or-off" aspects of the appearance of one or
  170. more sprites.  The most important of these is visibility, but display
  171. priority, size, and multicolor mode are also included.
  172.  
  173. <Sprite# [,<sum>]> has the same form and behavior as described for the
  174. SPRCOL statement.  The remaining parameters are all expressions.  If the
  175. expression is non-zero (true), the parameter will be turned "on". If the
  176. expression has a value of zero (false), the parameter will be turned "off".
  177. Parameters not present remain in their current state.
  178.  
  179. <Enable> controls sprite visibility.  An "off" sprite cannot be seen.  If a
  180. sprite is "on" it may be visible (if it is located within the physical
  181. screen coordinates, if it has a color different from the paper color, if it
  182. is not hidden by foreground or another sprite).
  183.  
  184. <Priority> controls what happens when a sprite and a foreground object
  185. appear in the same place on the screen.  If "off" (higher), a sprite will
  186. appear in front of any foreground objects it crosses.  If "on" (lower), the
  187. sprite will disappear behind them (sprites also have a built-in priority to
  188. other sprites.  Sprite 1 has the highest, sprite 2 the second highest and
  189. so on down to sprite 8, which has the lowest priority.  When two sprites
  190. cross the one with higher priority passes in front of the one with lower
  191. priority.).
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199. <Xsize> and <ysize> control horizontal and vertical sprite size.  "Off" is
  200. normal size and "on" is double size.
  201.  
  202. <Multi> controls sprite multicolor.  A normal ("off") sprite can display
  203. only one color, while a multicolor ("on") sprite can also display either or
  204. both of the two additional colors shared by all multicolor sprites.  The
  205. pixels of multicolor sprites are twice as wide and half as many as the
  206. pixels of normal sprites.
  207.  
  208. SPRITE functions in all graphic modes except mode 0.  Values set by a
  209. SPRITE statement remain in effect until changed by another SPRITE
  210. statement, with the exception that the GRAPHIC statement sets <enable> to
  211. "off" for all eight sprites.
  212.  
  213. Examples:
  214.  
  215. 10 SPRITE 1,1,0,0,0,1
  216. 20 SPRITE 3,,,X<312, Y<100
  217. 30 SPRITE 0,255,0
  218.  
  219. ---------------------------------------
  220.  
  221. SPRLOC <sprite# [,<sum>]>, <xpos>, <ypos>
  222.  
  223. SPRLOC positions one or more sprites on the logical screen.  <Sprite#
  224. [,<sum>]> has the same form and behavior as described for the SPRLOC
  225. statement.
  226.  
  227. <Xpos>, <ypos> sets the position of the upper left corner of a sprite.  The
  228. range of <xpos>, <ypos> depends on the current logical screen coordinates.
  229. The default range is -24, -50 to 487, 205.  Not all of these values
  230. correspond to locations on the physical screen.  SPRLOC is the only
  231. statement that allows <xpos>, <ypos> to be outside the physical screen
  232. area.  Normal-sized sprites are completely on the physical screen only
  233. within the range 0, 0 to 295, 178, and will be completely off the screen
  234. outside the range -23, -20 to 319, 199.
  235.  
  236. SPRLOC functions in all graphic modes except mode 0.
  237.  
  238. Examples:
  239.  
  240. 10 SPRLOC 1, 160, 100
  241. 20 SPRLOC 0, 3, -24, -50
  242. 30 SPRLOC A, X(A), Y(A)
  243.  
  244. --------------------------------------
  245.  
  246. SPRMULTI [<color1> [,<color2>]]
  247.  
  248. The SPRMULTI statements sets the two colors shared by multicolor sprites.
  249. These colors are in addition to the unique color each sprite may have
  250. (which is set by SPRCOL).  Like the multicolor graphic modes, in exchange
  251. for the two extra colors a multicolor sprite loses half its horizontal
  252. resolution as the pixels that make it up become twice as wide and half as
  253. many.
  254.  
  255. Each color may range from  0 to 15. SPRMULTI functions in all graphic
  256. modes.
  257.  
  258. Examples:
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266. 10 SPRMULTI 4, 0
  267. 20 SPRMULTI A
  268. 30 SPRMULTI ,A+1
  269.  
  270. ---------------------------------------
  271.  
  272. SPRPIC <sprite# [,<sum>]>, <image>
  273.  
  274. SPRPIC assigns a sprite image block to a sprite.  A sprite "looks like" the
  275. image in the sprite image block currently assigned to it.  <Sprite#
  276. [,<sum>]> has the same form and behavior described for the SPRLOC
  277. statement.
  278.  
  279. Sprite image block numbers range from 0 to 206 (these are the same image
  280. blocks that are used by the IMAGE statement.  The IMAGE statement is one
  281. way of assigning an image to a sprite image block).  An image block itself
  282. has no default value.  It is the programmer's responsibility to ensure that
  283. any image block used in a SPRPIC statement actually contains a useful image
  284. and causes no memory use conflict (see IMAGE for more details).
  285.  
  286. The image block assigned to a sprite may be changed at any time (this is
  287. one way to animate a sprite).  There are no default image block assignments
  288. to sprites.
  289.  
  290. Examples:
  291.  
  292. 10 SPRPIC 1, 8
  293. 20 SPRPIC 0, 3, P(A)
  294.  
  295. ---------------------------------------
  296.  
  297. SWAP <var1>, <var2>
  298.  
  299. The SWAP statement exchanges the values of two variables.  <Var1> and
  300. <var2> can be any two variables of the same type (real, integer, or
  301. string).  It is not possible to SWAP a real with an integer variable (to
  302. exchange these two types it is necessary to use a third "holding" variable
  303. to temporarily store one of the two variables).
  304.  
  305. Examples:
  306.  
  307. 10 SWAP A, B
  308. 20 SWAP A$(I), A$(J)
  309. 30 SWAP A%, A%(I)
  310.  
  311.